Accelerating data movement between GPUs and storage or memory

Chris J. Newburn (CJ), Distinguished Engineer, NVIDIA, [email protected]
Magnum IO architect. Ph.D., Carnegie Mellon University 1997

Da Zheng, Sr. Applied Scientist, AWS, [email protected]
ML framework/algo leads; DGL/DGL-KE/DistDGL/TGL Ph.D. Johns Hopkins 2016

Harish Arora, Principal Product Manager, NVIDIA, [email protected]
Magnum IO product mgr, Storage/Networking for DGX. MS IMT, MBA Cornell

Mar 22, 2023, 1pm


目录


引言

NVIDIA在加速存储I/O方面的新发展:
* Magnum IO
* GPUDirect
* NVIDIA的存储空间创新
* GPUDirect Storage
* GPU发起的存储
* 安全性

NVIDIA® Magnum IO

数据中心和边缘的优化数据移动、访问、管理I/O子系统。

NVIDIA GPUDirect™

关于谁决定做什么以及何时做的工作变体,以增加GPU的自主性。

GPUDirect 异步与非异步模式:

GPUDirect (非异步) GPUDirect 异步
CPU发起 (准备, 触发) CPU准备, GPU触发 GPU内核发起
视频 GPUDirect Video Stream triggered GDA-ST
本地GPU GPUDirect Peer-Peer P2P Graph triggered GDA-GT
远程主设备 GPUDirect RDMA Kernel triggered GDA-KT
存储 GPUDirect Storage GDS

NVIDIA Magnum IO GPUDirect Storage

概述

GPUDirect Storage将文件I/O作为CUDA的一部分。

传统文件系统访问与GPUDirect Storage访问对比
传统文件系统访问与GPUDirect Storage访问对比

合作伙伴更新

合作伙伴生态系统正在响应客户需求而扩展。

所有通用合作伙伴:NVIDIA GPUDirect Storage 集成解决方案已投入生产,包括DDN, DellEMC, Hewlett Packard Enterprise, Hitachi Vantara, IBM, KIOXIA, LIQUID, Micron, NetApp, Samsung, Scaleflux, SUPERMICRO, ThinkParQ, VAST, WEKA。

文件系统合作伙伴

GPUDirect Storage 文件系统合作伙伴列表
GPUDirect Storage 文件系统合作伙伴列表

用例

用于逆时偏移 (RTM)

逆时偏移(RTM)用例总结。

用于逆时偏移结果

RTM性能结果:小问题规模与大问题规模
RTM性能结果:小问题规模与大问题规模

最新评估 (KAUST PSTM)

KAUST的PSTM基准测试。

用于叠前时间偏移 (PSTM)

用例亮点 – KAUST的PSTM基准测试。

PSTM工作流程分析和I/O瓶颈
PSTM工作流程分析和I/O瓶颈

用于叠前时间偏移 (PSTM) 结果和优化机会

PSTM完整应用加速结果
PSTM完整应用加速结果

其他用例

许多用例和应用配置文件已证明成功。

GPUDirect Storage在不同应用中的I/O性能提升及工作流程
GPUDirect Storage在不同应用中的I/O性能提升及工作流程

用户经验教训

应用开发者喜欢GPUDirect Storage的性能,但有额外的要求。

HDF5数据结构示例
HDF5数据结构示例

推理与训练 - DeepCAM 和 Cosmoflow

本次内容探讨了午餐时间与全天候推理(Inference over lunch vs. all day)对简单模型训练的显著影响。

下表详细比较了DeepCAM推理、DeepCAM训练和CosmoFlow训练在不同IO模式、DNN层数和GDS增益(加速比)下的表现:

DeepCAM和CosmoFlow的推理与训练性能比较
DeepCAM和CosmoFlow的推理与训练性能比较

要点:

NVIDIA的存储空间创新

NVIDIA在存储空间方面持续创新,为未来奠定了坚实基础。主要方向包括:

兼容性

旨在实现同步提交、异步完成,并分摊用户-内核开销。

融合DPU-GPU

将远程存储的数据通过NIC传输到GPU,且数据流不离开卡。

GDS在NFS读取上的性能比较和融合DPU架构图
GDS在NFS读取上的性能比较和融合DPU架构图

要点:

批处理 - CUDA 12.0.1中的新功能

实现同步提交、异步完成,并分摊用户-内核开销。

CUDA 12.0.1批处理功能流程图
CUDA 12.0.1批处理功能流程图

批处理结果

在略微牺牲吞吐量的情况下,显著降低CPU利用率。

GDS批处理与线程处理对比及cuFileBatch与Linux AIO对比
GDS批处理与线程处理对比及cuFileBatch与Linux AIO对比

异步 - 未来功能

在流中实现异步提交、异步完成。

同步提交与异步提交流程对比
同步提交与异步提交流程对比

行动号召:
* 对(公开)实验性API提供反馈。
* 在即将发布的版本中试用它们。

控制源

CPU、DPU、GPU都可以控制NVMe存储。

CPU、DPU、GPU控制NVMe存储的架构图及特性表
CPU、DPU、GPU控制NVMe存储的架构图及特性表

新功能 (即将推出)

请联系我们 - [email protected]

GPU发起的存储

问题:大量随机细粒度访问

GPU并发性是实现吞吐量的关键。

使用模型

需要高效键值API来处理大量小I/O到GPU内存的批处理。

图机器学习中的应用

工业中的图机器学习

图机器学习在工业中主要应用于节点级预测和边级预测。

节点级预测与边级预测示意图
节点级预测与边级预测示意图

图神经网络 (GNN)

图神经网络是一系列学习节点、边和图嵌入的(深度)神经网络。

图神经网络工作原理示意图和关键词使用趋势
图神经网络工作原理示意图和关键词使用趋势

GNN如何工作?

图上的Mini-batch训练

一个mini-batch表示针对某些目标节点的计算图。

图上的Mini-batch训练示意图
图上的Mini-batch训练示意图

使用DistDGL进行多机分布式训练

设计:
* 在机器间划分图。
* 数据并行mini-batch训练。
* 同步GNN模型参数更新。
* 异步稀疏嵌入更新。

DistDGL多机分布式训练架构图
DistDGL多机分布式训练架构图

分布式 GNN 训练

CPU-based 分布式训练

本架构展示了基于 CPU 的分布式训练,其核心思想是协同放置数据与计算,以减少网络通信。每个 GPU 实例都有一个与其关联的服务器进程,该进程负责处理节点/边特征。采样器从服务器进程获取数据,然后由训练器进程在 GPU 上执行计算。不同服务器进程之间通过网络交换节点/边特征。

CPU-based distributed training Page 31
CPU-based distributed training Page 31

NVMe-based 分布式训练

此架构图与前一页类似,但明确指出节点/边特征存储在 NVMe 存储上。通过将数据与计算协同放置,利用 NVMe 的特性,旨在减少网络通信,并可能提高数据访问效率。

NVMe-based distributed training Page 32
NVMe-based distributed training Page 32

扩展 GNN 训练和内存需求

该幻灯片展示了在大规模 GNN 训练中,NVMe 如何显著降低 CPU 内存消耗,并强调了 NVMe 在成本效益上的优势。

Graph Size Total memory size Node feature size Reduce CPU memory consumption with NVMe by (%)
OGBN-papers100M
#100M nodes
#1.6B edges
128 node features
100 GB 52 GB 52%
MAG-LSC
#240M nodes
#3.4B edges
768 node features
224 GB 174 GB 78%
Future target
O(10-100B) nodes
O(100B-1T) edges
100 TB to >1 PB 100 TB to >1 PB
> feature richness
improves with
> nodes, compression
Scale GNN training and memory requirements Page 33
Scale GNN training and memory requirements Page 33

分布式 GNN 训练管道

分布式 GNN 训练管道的迷你批次训练步骤包括:
- 采样迷你批次
- 复制节点/边特征
- 迷你批次计算

下表展示了每一步所需的数据复制吞吐量:

Distributed GNN training pipeline Page 34
Distributed GNN training pipeline Page 34

设计目标和要求

此项工作目前处于研究中的概念验证 (POC) 阶段,并非已承诺的产品。

设计目标:
- 提供新的 API 以从 GPU 访问存储 IO。
- 最大化大批量数据访问的吞吐量。
- 扩展处理无法完全适应 GPU HBM 或 CPU DDR 的超大数据集,利用更便宜的 NVMe。
- 缓解 NVMe IOPs 成为 GPU 与 CPU 瓶颈的问题。

满足要求的设计选择:
- 在数据存在临时或空间局部性时:
- GPU 内部缓存的带宽应远大于 PCIe 进入 GPU 的带宽。
- 使缓存行大小与块大小匹配,以便聚合为块访问。

架构

该架构旨在最终消除 CPU 作为存储瓶颈。

GPU-initiated storage architecture Page 36
GPU-initiated storage architecture Page 36

NVIDIA GNN 性能结果与我们的 POC

平衡的端到端系统达到了最佳可用吞吐量。

NVIDIA GNN performance results with our POC Page 37
NVIDIA GNN performance results with our POC Page 37

GNN 性能

GPU 发起的 IO 可以轻易饱和存储吞吐量。

GNN Performance Page 38
GNN Performance Page 38

当前 POC 限制

这是一个具有可扩展架构的有效概念验证。

限制:
- 规模: 仅限于带 CPU/GPU/NVMe 的单节点。
- 访问 API: 内存数组抽象。
- NVMe 加载:
- NVMe 已预加载。
- 请求总是命中 NVMe 层。

AWS 适用性

下表比较了不同节点特征复制方法在 AWS 上的吞吐量表现:

AWS applicability Page 40
AWS applicability Page 40

安全

考虑点

安全方面的考虑点包括:

信任区域

Trust zones Page 42
Trust zones Page 42

权衡

该部分旨在提出问题并作为一个社区来探索技术。

Trade-offs Page 43
Trade-offs Page 43

DPU 作为授权的关口

凭据发送到由更受信任的 DPU 而非计算节点使用。

DPU as a gate to authorization Page 44
DPU as a gate to authorization Page 44

此图展示了 DPU 如何作为授权的关口。来自节点1(用户A,用户B)和节点2(用户C)的请求通过 DPU 路由到文件服务器。DPU 还能与调度器进行用户-节点映射。通过 DPU,可以实现更细粒度的访问控制和授权。

动态数据和静态数据

密钥分发给 DPU 而非不受信任的计算节点。

Data in motion and at rest Page 45
Data in motion and at rest Page 45

此图说明了 DPU 如何处理数据的加密和解密,无论数据是动态的(in motion)还是静态的(at rest)。节点处理明文数据,而 DPU 执行加密/解密操作。文件服务器接收加密的数据,并通过文件命令与 DPU 交互。这确保了即使文件服务器存储的数据也是加密的,增强了安全性。

鸣谢 (Credits)

行动呼吁 (Call to action)